Verifying Total Correctness of Graph Programs
نویسندگان
چکیده
GP 2 is an experimental nondeterministic programming language based on graph transformation rules, allowing for visual programming and the solving of graph problems at a high-level of abstraction. In previous work we demonstrated how to verify graph programs using a Hoare-style proof calculus, but only partial correctness was considered. In this paper, we add new proof rules and termination functions, which allow for proofs to additionally guarantee that program executions always terminate (weak total correctness), or that programs always terminate and do so without failure (total correctness). We show that the new proof rules are sound with respect to the operational semantics of GP 2, complete for termination, and demonstrate their use on some example programs.
منابع مشابه
Hoare Logic for Graph Programs
We present a new approach for verifying programs written in GP (for Graph Programs), an experimental programming language for performing computations on graphs at a high level of abstraction. Taking a labelled graph as input, a graph program nondeterministically applies to it a number of graph transformation rules, directed by simple control constructs such as sequential composition and as-long...
متن کاملA Hoare Calculus for Graph Programs
We present Hoare-style axiom schemata and inference rules for verifying the partial correctness of programs in the graph programming language GP. The preand postconditions of this calculus are the nested conditions of Habel, Pennemann and Rensink, extended with expressions for labels in order to deal with GP’s conditional rule schemata and infinite label alphabet. We show that the proof rules a...
متن کاملProving correctness of graph programs relative to recursively nested conditions
Graph programs provide a formal way to model the behaviour of a wide range of discrete systems. These programs are an extension of graph rewriting with control structures (sequence, nondeterministic choice and iteration). This thesis presents a theoretically founded formalism for specifying properties of graph programs and a proof-based approach to verifying the partial correctness of a graph p...
متن کاملTowards the Verification of Graph Programs Qualifying Dissertation
GP (for Graph Programs) is an experimental programming language which allows one to manipulate graphs at a very high level of abstraction. There are numerous applications for graph programs: from solving graph problems without the need to consider low level data structures, to specifying the operational behaviour of systems, to simulating the behaviour of pointers. To reason about the correctne...
متن کاملVerifying Monadic Second-Order Properties of Graph Programs
The core challenge in a Hoareor Dijkstra-style proof system for graph programs is in defining a weakest liberal precondition construction with respect to a rule and a postcondition. Previous work addressing this has focused on assertion languages for first-order properties, which are unable to express important global properties of graphs such as acyclicity, connectedness, or existence of paths...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- ECEASST
دوره 61 شماره
صفحات -
تاریخ انتشار 2013